import java.util.Scanner;

/**
 * @Author maojiangyue
 * @Date 2025/10/25
 * @Description 菜单价格计算
 */
public class MenuPrices {
    public static void main(String[] args) {
        //输入样例：宫保鸡丁 28元 鱼香肉丝 22.8元 麻婆豆腐 18元 红烧肉 35.6元
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入菜单：");
        String menu = sc.nextLine();
        double totalPrice = CountPrice(menu);

        System.out.println("总价格: " + totalPrice + " 元");
    }

    public static double CountPrice(String menu) {
        if (menu == null || menu.isEmpty()){
            return 0;
        }
        //预处理字符串-删去头尾空格
        menu = menu.trim();
        double totalPrice = 0;
        int YuanNum=0;

        //遍历寻找'元' 获取价格
        for (int i = 1; i < menu.length(); i++) {
            if (menu.charAt(i) == '元') {
                YuanNum++;
                int start = i - 1;
                int end = i;
                while (start >= 0 && menu.charAt(start) == ' ') {
                    //如果‘元’前存在空格数字部分开始与结束部分都要左移
                    end--;start--;
                }

                //向前找到数字的起始位置
                while (start >= 0 && (Character.isDigit(menu.charAt(start))
                        || menu.charAt(start) == '.')) {
                    start--;
                }

                //提取数字部分
                String priceStr = menu.substring(start + 1, end);
                if (!priceStr.isEmpty()) {
                    try {
                        totalPrice += Double.parseDouble(priceStr);
                    } catch (NumberFormatException e) {
                        // 忽略无法解析的数字
                    }
                }
            }
        }

        if(YuanNum == 0) {
            System.out.println("未找到'元'单位 请检查输入");
        }

        return totalPrice;
    }
}
